var macro;
var jsLF = "\n";
var i, retcode, errtext;
var MyDelay;
var MyPosts;
var Aldeias;
var espioes;
var cavalariaLeve;
var arites;
var command;
var log;
var madeira, argila, ferro;
var relat;
var muralha;
espioes = 4;
cavalariaLeve = 10;
var aldeiaAtacante = "";
var minimoTropas = 2;
var mundo = "br35";




Farms37 = new Array();
Blindados = new Array();

Farms37.push("49123");
Farms37.push("47916");
Farms37.push("51362");
Farms37.push("49562");
Farms37.push("51512");
Farms37.push("50098");
Farms37.push("51259");
Farms37.push("50249");
Farms37.push("52620");
Farms37.push("49169");
Farms37.push("50220");
Farms37.push("47652");
Farms37.push("49848");
Farms37.push("50852");
Farms37.push("48945");
Farms37.push("53298");
Farms37.push("54738");

Farms37.push("51252");
Farms37.push("48795");
Farms37.push("48970");
Farms37.push("54799");
Farms37.push("55417");
Farms37.push("53182");
Farms37.push("49484");
Farms37.push("47973");
Farms37.push("51059");
Farms37.push("48141");
Farms37.push("45700");
Farms37.push("45890");
Farms37.push("54098");
Farms37.push("52054");

Farms37.push("50222");
Farms37.push("52054");





//a1 = "32667";
//if(!conteins(a1)){
//   Farms37.push(a1);
//}


Blindados.push("49845");






while(true){

    //armazena o relatorio
    macro = "CODE:";
    macro += "ADD !EXTRACT {{!URLCURRENT}}";
    iimPlay(macro);
    var text = iimGetLastExtract();
    relat = text.substr(text.indexOf("view=")+5, 40);
    
    
    //mundo    
    mundo = text.substr(7, 4);

    //extrair dados do relatorio
    macro = "CODE:";
    macro += "TAG POS=1 TYPE=TD ATTR=ID:inner-border EXTRACT=HTM";
    iimPlay(macro);
    text = iimGetLastExtract();
    
    //aldeia atacante
    var origem =  text.substr(text.indexOf("<tr><td>Origem:</td><td>"),500);
    //alert(origem);
    origem = origem.substring(origem.indexOf("info_village&amp;id=")+20, 100);
    //alert(origem);
    aldeiaAtacante = origem.substring(0, origem.indexOf("\">"));
    //alert(aldeiaAtacante);
    
    //valores para madeira, argila e ferro
    var recursosDescobertos = text.substr(text.indexOf("Recursos descobertos:"),500);
    madeira = recursosDescobertos.substr(recursosDescobertos.indexOf("Madeira"),100);
    argila = recursosDescobertos.substr(recursosDescobertos.indexOf("Argila"),100);
    ferro = recursosDescobertos.substr(recursosDescobertos.indexOf("Ferro"),100);

    madeira = madeira.split("<span class=\"grey\">.</span>")
    madeira = madeira[0]+madeira[1];

    argila = argila.split("<span class=\"grey\">.</span>")
    argila = argila[0]+argila[1];

    ferro = ferro.split("<span class=\"grey\">.</span>")
    ferro = ferro[0]+ferro[1];

    madeira = madeira.substring(madeira.indexOf(">")+1, madeira.indexOf("<")-1);
    argila = argila.substring(argila.indexOf(">")+1, argila.indexOf("<")-1);
    ferro = ferro.substring(ferro.indexOf(">")+1, ferro.indexOf("<")-1);

    madeira = parseInt(madeira);
    ferro = parseInt(ferro);
    argila = parseInt(argila);

    muralha = text.substr(text.indexOf("Muralha <b>"), 100);
    muralha = muralha.substring(muralha.indexOf("vel ")+4, muralha.indexOf(")"));



    muralha = parseInt(muralha);
    if(muralha > 0)
        logui("Muralha "+muralha);

  
    logui("M: "+ madeira + " A: "+argila+ " F: "+ferro);
    
    var cavalosNecessarios = (madeira+argila+ferro)/80;
    var aritesNecessarias = 0;
    if(muralha>0)
        aritesNecessarias = (muralha * 2)+muralha;

   
    logui("Necessarios: "+cavalosNecessarios+ " cavalos e "+aritesNecessarias+" arites.");
    
    //alert(muralha);
    
    //extrair dados da aldeia de destino
    var destino = text.substr(text.indexOf("Destino:")+26,500);
    destino = destino.substr(destino.indexOf("id=")+3,100);
    var aldeiaDestino = destino.substr(0, destino.indexOf(">")-1)
    var aldeiaNome = destino.substring(destino.indexOf(">")+1,destino.indexOf(" ("));


    
    if(aldeiaNome == "Aldeia-bonus" || aldeiaNome == "Aldeia de bárbaros"|| aldeiaNome == "Aldeia de bárbaros"|| conteins(aldeiaDestino)){

        if(isBlindado(aldeiaDestino)){
            continue;
        }
        //la³gica do ataque
        ataque();

        //Retorna para o relata³rio
        macro = "CODE:";
        macro += "URL GOTO=http://"+mundo+".tribalwars.com.br/game.php?village="+aldeiaAtacante+"&screen=report&mode=all&view="+relat;
        iimPlay(macro);

    }


    while(true){
        if(next())
            break;
    }
    
    logui("");
    //break;
}



function next(){
    
    //muda para o pra³ximo relata³rio
    macro = "CODE:";
    macro += "TAG POS=2 TYPE=A ATTR=TXT:<<";
    retcode = iimPlay(macro);
    
    if (retcode < 0) {              // an error has occured
        errtext = iimGetLastError();
        macro = "CODE:";
        macro += "WAIT SECONDS=60" + jsLF;
        macro += "URL GOTO=http://"+mundo+".tribalwars.com.br/game.php?village="+aldeiaAtacante+"&screen=report&mode=all&view="+relat;
        iimPlay(macro);
     
        return false;
    } 
    return next;
    
}



function ataque(){
    macro = "CODE:";
    macro += "URL GOTO=http://"+mundo+".tribalwars.com.br/game.php?village="+aldeiaAtacante+"&screen=place&target="+ aldeiaDestino + jsLF;
    iimPlay(macro);


    while(true){
        if(verificaTropasNecessarias()){
            break
        }else{
            macro = "CODE:";
            macro += "WAIT SECONDS=60" + jsLF;
            iimPlay(macro);
        }
    }

    macro = "CODE:";
    macro += "TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:units ATTR=ID:unit_input_spy CONTENT="+ espioes + jsLF;
    macro += "TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:units ATTR=ID:unit_input_light CONTENT=" + cavalariaLeve + jsLF;
    macro += "TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:units ATTR=ID:unit_input_ram CONTENT="+arites + jsLF;
    macro += "TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:units_form ATTR=ID:target_attack" + jsLF;
    macro += "TAG POS=1 TYPE=TD ATTR=ID:inner-border EXTRACT=HTM";
    iimPlay(macro);

    text = iimGetLastExtract();
    
    var error = text.indexOf(">O alvo só pode ser atacado ou atacar a partir de");
    if(error>0){
        log = log+" - er";
        return;
    }
    
    
    command = text.substr(text.indexOf("action=command&amp;h=")+21,4);

    macro = "CODE:";
    macro += "TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:http://"+mundo+".tribalwars.com.br/game.php?village="+aldeiaAtacante+"&screen=place&action=command&h="+ command +" ATTR=ID:troop_confirm_go" + jsLF;
    retcode = iimPlay(macro);
}


function verificaTropasNecessarias(){
    macro += "TAG POS=1 TYPE=TD ATTR=ID:inner-border EXTRACT=HTM";
    iimPlay(macro);

    //verificar se possui o numero de tropas para o ataque
    var text = iimGetLastExtract();

    //obtem o numero de cavalos leves
    var numCavalariaLeve = text.substr(text.indexOf("('#unit_input_light')")+23,10);
    numCavalariaLeve = numCavalariaLeve.substr(0,numCavalariaLeve.indexOf(")"));
    numCavalariaLeve = parseInt(numCavalariaLeve);
    //    alert(numCavalariaLeve);

    var numSpy = text.substr(text.indexOf("('#unit_input_spy')")+20,10);
    numSpy = numSpy.substr(0,numSpy.indexOf(")"));
    numSpy = parseInt(numSpy);
    //    alert(numSpy);
    
    var numArites = text.substr(text.indexOf("('#unit_input_ram')")+20,10);
    numArites = numArites.substr(0,numArites.indexOf(")"));
    numArites = parseInt(numArites);
    //alert(numArites);
    
    

    var confirm = false;

    //verifica se sa£o sufucientes para o ataque
    //cavalosNecessarios = parseInt(cavalosNecessarios);
    //alert(numCavalariaLeve+" - "+ cavalosNecessarios);
    if(numCavalariaLeve>cavalosNecessarios+minimoTropas){
        cavalariaLeve = cavalosNecessarios+minimoTropas;
        confirm = true;
        // alert(cavalariaLeve);
    }else {
        if(numCavalariaLeve>=minimoTropas){
            cavalariaLeve = numCavalariaLeve;
            confirm = true;
        }else{
            confirm = false;
        }
    }

    if(confirm && numSpy>=espioes){
        espioes = espioes;
    }else{
        confirm = false;
    }
    
    if(confirm){
        if(aritesNecessarias<=numArites)
            arites = aritesNecessarias;
        else
            arites = numArites;
        
    }
    //    if(aldeiaAtacante == "43215" && cavalariaLeve>50){
    //        cavalariaLeve = 50;
    //    }

    if(arites >0 && cavalariaLeve>20){
        cavalariaLeve = 20;
    }

    if(confirm){
        logui("enviados: CL: "+cavalariaLeve + " spy: "+espioes+ " Ar: "+arites);
    }
    
    return confirm;
}


function logui(txtLog){
    log = txtLog + jsLF+ log;
    iimDisplay(log);
}

function conteins(aldeia){
    var i;
    for(i = 0; i<Farms37.length;i++){
        if(Farms37[i]== aldeia)
            return true;
    }
    return false;
}
function isBlindado(aldeia){
    var i;
    for(i = 0; i<Blindados.length;i++){
        if(Blindados[i]== aldeia)
            return true;
    }
    return false;
}
